81de7ca6ec75d1c33877b1f61ab12b88fa568cee,plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java,GrReferenceExpressionImpl,getVariantsImpl,#ResolverProcessor#,213

Before Change



    GroovyResolveResult[] candidates = processor.getCandidates();
    if (candidates.length == 0) return PsiNamedElement.EMPTY_ARRAY;
    return ResolveUtil.mapToElements(candidates);
  }

  public boolean isSoft() {

After Change



    GroovyResolveResult[] candidates = processor.getCandidates();
    if (candidates.length == 0) return PsiNamedElement.EMPTY_ARRAY;
    Object[] elements = ResolveUtil.mapToElements(candidates);
    if (qualifierClass != null && !(qualifierClass instanceof GrTypeDefinition)) {
      List<PsiMethod> groovyDefaults = new ArrayList<PsiMethod>();
      addDefaultMethods(qualifierClass, groovyDefaults, new HashSet<PsiClass>());

      if (groovyDefaults.size() > 0) {
        PsiMethod[] defaultMethods = groovyDefaults.toArray(new PsiMethod[groovyDefaults.size()]);
        return ArrayUtil.mergeArrays(elements, defaultMethods, Object.class);
      }
    }
    return elements;
  }

  private void addDefaultMethods(PsiClass clazz, List<PsiMethod> groovyDefaults, Set<PsiClass> visited) {